home *** CD-ROM | disk | FTP | other *** search
- Object *CreateDropObj(int type)
- { switch (type)
- { case MUIC_DropButton: return(DropButtonObject("Button"));
- case MUIC_DropText: return(DropTextObject("Text"));
- case MUIC_DropListview: return(DropListviewObject);
- case MUIC_DropString: return(DropStringObject("String"));
- case MUIC_DropCycle: return(DropCycleObject(entries));
- case MUIC_DropRadio: return(DropRadioObject(entries));
- case MUIC_DropCheckmark: return(DropCheckmarkObject);
- case MUIC_DropGroup: return(DropGroupObject("Group"), Child, HSpace(1), End);
- case MUIC_DropGauge: return(DropGaugeObject);
- case MUIC_DropScale: return(DropScaleObject);
- case MUIC_DropBalance: return(DropBalanceObject);
- case MUIC_DropImage: return(DropImageObject);
- case MUIC_DropSlider: return(DropSliderObject);
- case MUIC_DropKnob: return(DropKnobObject);
- case MUIC_DropLevelmeter: return(DropLevelmeterObject);
- case MUIC_DropNumericbutton: return(DropNumericbuttonObject);
- default: return(NULL);
- }
- }
-
- VOID Group_Append(Object *new, Object *group)
- {
- if (DoMethod(group,MUIM_Group_InitChange))
- {
- DoMethod(group,OM_ADDMEMBER,new);
- DoMethod(group,MUIM_Group_ExitChange);
- }
- }
-
- VOID Group_Remove(Object *obj)
- {
- Object *group;
-
- get(obj,MUIA_Parent,&group);
- if (DoMethod(group,MUIM_Group_InitChange))
- {
- DoMethod(group,OM_REMMEMBER,obj);
- DoMethod(group,MUIM_Group_ExitChange);
- }
- }
-
- VOID Group_Insert(Object *new, Object *obj, Object *group)
- {
- if (DoMethod(group,MUIM_Group_InitChange))
- {
- Insert_Member(new,obj,group);
- DoMethod(group,MUIM_Group_ExitChange);
- }
- }
-
- VOID Group_Move(Object *source, Object *dest)
- {
- Object *oldgroup, *newgroup;
-
- get(source,MUIA_Parent,&oldgroup);
- get(dest,MUIA_Parent,&newgroup);
-
- if (DoMethod(oldgroup,MUIM_Group_InitChange))
- {
- DoMethod(oldgroup,OM_REMMEMBER,source);
- DoMethod(oldgroup,MUIM_Group_ExitChange);
- }
-
- if (DoMethod(newgroup,MUIM_Group_InitChange))
- {
- Insert_Member(source,dest,newgroup);
- DoMethod(newgroup,MUIM_Group_ExitChange);
- }
- }
-
- /************************************************************/
- /* For now only an objectlist of 100 objects is supported */
- /***********************************************************/
- VOID Insert_Member(Object *new, Object *obj, Object *group)
- {
- Object *child, *childlist=NULL, *objlist[100];
- int i;
-
- /* Not very elegant, but there really should be a MUIM_Group_Insert */
- get(group,MUIA_Group_ChildList,&childlist);
-
- /* Get all objects */
- for(i=0;child=NextObject(&childlist);i++)
- objlist[i]=child;
- objlist[i]=NULL;
-
- /* Skip to the object */
- for(i=0;objlist[i]!=obj;i++);
-
- /* Add the new object */
- DoMethod(group,OM_ADDMEMBER,new);
-
- /* Remove and then add then remaining objects to the end of the list*/
- for(;objlist[i]!=NULL;i++)
- { DoMethod(group,OM_REMMEMBER,objlist[i]);
- DoMethod(group,OM_ADDMEMBER,objlist[i]);
- }
- }
-